package com.pb.wkflow.api.service;

import com.pb.wkflow.api.controller.request.ProcessInstanceCreateRequest;
import com.pb.wkflow.api.entity.WfSysProcInfoEntity;
import org.camunda.bpm.engine.repository.ProcessDefinition;
import org.camunda.bpm.engine.runtime.ProcessInstance;

import java.util.Map;

/**
 * @author 苗益辉
 * @date 2022/9/28 10:23
 */
public interface WfSysProcInfoService {

    /**
     * 新增流程信息表
     * @param processDefinition 流程定义
     * @param processInstance 流程实例
     * @param request 其他信息
     */
    void insert(ProcessDefinition processDefinition, ProcessInstance processInstance, ProcessInstanceCreateRequest request);

    /**
     * 更新流程状态
     * @param processInstanceId 流程定义id
     * @param processStatus 流程状态
     * @param paramsMap 全局变量
     * @param isEnd 是否结束
     */
    void update(String processInstanceId, String processStatus, Map<String, Object> paramsMap, String isEnd);

    /**
     * 根据流程实例id删除
     * @param processInstanceId 流程实例id
     */
    void delete(String processInstanceId);

    /**
     * 根据流程实例id查询
     * @param processInstanceId 流程实例id
     */
    WfSysProcInfoEntity selectOne(String processInstanceId);
}
